A Taxonomy of Functional Language Implementations Part II : Call-by-Name, Call-by-Need and Graph Reduction

نویسندگان

  • Rémi Douence
  • Pascal Fradet
چکیده

In Part I [5], we proposed an approach to formally describe and compare functional languages implementations. We focused on call-by-value and described well-known compilers for strict languages. Here, we complete our exploration of the design space of implementations by studying call-by-name, call-by-need and graph reduction. We express the whole compilation process as a succession of program transformations in a common framework. At each step, different transformations model fundamental choices or optimizations. We describe and compare the diverse alternatives for the compilation of the call-by-name strategy in both environment and graph-based models. The different options for the compilation of β-reduction described in [5] can be applied here as well. Instead, we describe other possibilities specific to graph reduction. Call-by-need is nothing but call-by-name with redex sharing and update. We present how sharing can be expressed in our framework and we describe different update schemes. We finally classify some well-known call-by-need implementations. Une Taxonomie des implantations des langages fonctionnels Partie II : Appel par nom, appel par nécessité et réduction de graphe Résumé : Dans la première partie de ce travail [5], nous avons proposé une approche pour formellement décrire et comparer les implantations de langages fonctionnels. Nous avons appliqué cette approche à l'étude des mises en oeuvre de l'appel par valeur. Ici, nous poursui-vons notre exploration des techniques de mise en oeuvre en étudiant l'appel par nom, l'appel par nécessité et la réduction de graphe. Nous décrivons le processus de compilation comme une suite de transformations de programmes dans le cadre fonctionnel. Les choix fondamen-taux de mise en oeuvre ainsi que les optimisations s'expriment naturellement comme des transformations différentes. Nous décrivons et comparons les choix de compilation de l'appel par nom dans les modèles à environnement et à réduction de graphes. Les différentes options de compilation de la β-réduction décrits dans [5] restent valides ici. Au lieu de cela, nous décrivons de nouvelles possibilités plus spécifiques à la réduction de graphes. L'appel par nécessité n'est rien d'autre qu'un raffinement de l'appel par nom intégrant le partage et la mise à jour d'expressions. Nous présentons comment le partage peut s'exprimer dans notre cadre et décrivons deux procédés de mise à jour. Enfin, nous cataloguons plusieurs implantations connues de l'appel par nécessité.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Handout 7: Call by Name and Call by Value

In Handout 4, we have examined the reduction semantics of lambda calculus, and noted the difference between the normal order reduction, which chooses leftmost-outermost redexes for reduction at every stage, and the applicative order reduction, which chooses innermost redexes for reduction at every stage. We noted that the normal order reduction strategy is always able to find the normal form of...

متن کامل

Affordances and limitations of technology: Voices from EFL teachers and learners

With the developments of new technologies appearing very quickly, the attention has been focused more on technology than learning. English centers and institutes have mostly been busy accommodating new programs and technologies and hence have not spent enough time to evaluate the CALL programs and technologies employed to find their affordances and limitations. The present study was an attempt ...

متن کامل

Process Semantics of Graph Reduction

This paper introduces an operational semantics for call-by-need reduction in terms of Milner's-calculus. The functional programming interest lies in the use of-calculus as an abstract yet realistic target language. The practical value of the encoding is demonstrated with an outline for a parallel code generator. From a theoretical perspective, the-calculus representation of computational strate...

متن کامل

Modeling Sharing and Recursion for Weak Reduction Strategies Using Explicit Substitution

We present the a w-calculus, a formal synthesis of the concepts of sharing and explicit substitution for weak reduction. We show how a w can be used as a foundation of implementations of functional programming languages by modeling the essential ingredients of such implementations, namely weak reduction strategies, recursion, space leaks, recursive data structures, and parallel evaluation, in a...

متن کامل

Effects of CALL-Mediated TBLT on Self-Efficacy for Reading among Iranian University Non-English Major EFL Students

The rich and still expanding literature on TBLT is helping to mature both its theoretical conceptualization and practical implementation in foreign and second language education. Similarly, computer-assisted language learning (CALL) has grown as a field, with the use and integration of technology in the classroom continuing to increase and will continue to play an important role in this maturat...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 1996